package cn.fl.ass.transform;

import java.util.ArrayList;
import java.util.List;

import cn.fl.ass.vo.AssDealSellVO;
import cn.cmm.base.framework.utils.CollectionUtils;
import fl.ass.facade.dto.AssDealSellDTO;
import org.springframework.beans.BeanUtils;

/**
 * @Description: 处置-变卖（事业部及优车） 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据 
 * @Description: VO转换数据变成DTO传递到服务端 
 * @Description: VO不能在服务端出现
 */
public class AssDealSellVOTransform {


	/**
	 * DTO 转  VO
	 * @param po AssDealSellDTO
	 * @return AssDealSellVO
	 */
	public static AssDealSellVO toVO(AssDealSellDTO dto) {
		AssDealSellVO  vo = null;
		if (dto != null) { 
			vo = new AssDealSellVO();
			BeanUtils.copyProperties(dto, vo);
			/*vo.setId(dto.getId());
			vo.setMasterId(dto.getMasterId());//拖车ID
			vo.setDetailId(dto.getDetailId());//拖车明细ID
			vo.setCstId(dto.getCstId());//客户ID
			vo.setCstNm(dto.getCstNm());//客户名称
			vo.setDataId(dto.getDataId());//主数据ID
			vo.setDataTypeCd(dto.getDataTypeCd());//数据类型(ASS0009)
			vo.setBuyerTypeCd(dto.getBuyerTypeCd());//购买者类型(ASS0010)
			vo.setBuyerCompanyNm(dto.getBuyerCompanyNm());//购买企业名称
			vo.setBuyerCompanyContact(dto.getBuyerCompanyContact());//购买企业联系人
			vo.setBuyerCompanyTel(dto.getBuyerCompanyTel());//购买企业联系方式
			vo.setBuyerNm(dto.getBuyerNm());//购买者姓名
			vo.setBuyerCd(dto.getBuyerCd());//购买者证件号
			vo.setBuyerTel(dto.getBuyerTel());//购买者联系方式
			vo.setPickCarNm(dto.getPickCarNm());//提车人姓名
			vo.setPickCarCd(dto.getPickCarCd());//提车人证件号
			vo.setPickCarTel(dto.getPickCarTel());//提车人联系方式
			vo.setSellAmt(dto.getSellAmt());//销售金额
			vo.setSellChannelCd(dto.getSellChannelCd());//销售渠道(ASS0011)
			vo.setSellDesc(dto.getSellDesc());//销售说明
			vo.setPayeeAccNm(dto.getPayeeAccNm());//收款方账户名称  
			vo.setPayeeAccNo(dto.getPayeeAccNo());//收款方银行账号
			vo.setPayeeBankNm(dto.getPayeeBankNm());//收款方开户银行
			vo.setPayeeBankNo(dto.getPayeeBankNo());//收款方开户行号 
			vo.setReceivedAmt(dto.getReceivedAmt());//到账金额
			vo.setReceivedTm(dto.getReceivedTm());//到账时间
			vo.setHandlerId(dto.getHandlerId());//经手人ID
			vo.setHandlerNm(dto.getHandlerNm());//经手人姓名
			vo.setHandlerCd(dto.getHandlerCd());//经手人证件号
			vo.setHandlerTel(dto.getHandlerTel());//经手人联系方式
			vo.setFlowStatusCd(dto.getFlowStatusCd());//流程状态(ASS0002)
			vo.setIsBorrow(dto.getIsBorrow());//是否预借权证
			vo.setIsPay(dto.getIsPay());//是否确认客户付款
			vo.setIsReceived(dto.getIsReceived());//是否已经到账
			vo.setIsDel(dto.getIsDel());//是否删除 1-删除 0-正常
			vo.setBuyerCompanyCode(dto.getBuyerCompanyCode());//购买企业组织机构代码
			vo.setApplyNm(dto.getApplyNm());//申请人名称

			vo.setCrtTm(dto.getCrtTm());//创建时间
			vo.setCrtUsrId(dto.getCrtUsrId());//创建人
			vo.setMdfTm(dto.getMdfTm());//修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());//修改人
			
			vo.setBackedFlagCd(dto.getBackedFlagCd());//拖回标记
			vo.setBaseAmt(dto.getBaseAmt());//保底价
			vo.setSellEstiAmt(dto.getSellEstiAmt());//处置评估价
			vo.setSellEstiDt(dto.getSellEstiDt());//处置评估时间
			vo.setAssessAmt(dto.getAssessAmt());*/
		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 * @param dto AssDealSellVO
	 * @return AssDealSellDTO
	 */
	public static AssDealSellDTO toDTO(AssDealSellVO vo) {
		AssDealSellDTO dto = null;
		if (vo != null) {
			dto = new AssDealSellDTO();
			BeanUtils.copyProperties(vo, dto);
			/*dto.setId(vo.getId());
			dto.setMasterId(vo.getMasterId());//拖车ID
			dto.setDetailId(vo.getDetailId());//拖车明细ID
			dto.setCstId(vo.getCstId());//客户ID
			dto.setCstNm(vo.getCstNm());//客户名称
			dto.setDataId(vo.getDataId());//主数据ID
			dto.setDataTypeCd(vo.getDataTypeCd());//数据类型(ASS0009)
			dto.setBuyerTypeCd(vo.getBuyerTypeCd());//购买者类型(ASS0010)
			dto.setBuyerCompanyNm(vo.getBuyerCompanyNm());//购买企业名称
			dto.setBuyerCompanyContact(vo.getBuyerCompanyContact());//购买企业联系人
			dto.setBuyerCompanyTel(vo.getBuyerCompanyTel());//购买企业联系方式
			dto.setBuyerNm(vo.getBuyerNm());//购买者姓名
			dto.setBuyerCd(vo.getBuyerCd());//购买者证件号
			dto.setBuyerTel(vo.getBuyerTel());//购买者联系方式
			dto.setPickCarNm(vo.getPickCarNm());//提车人姓名
			dto.setPickCarCd(vo.getPickCarCd());//提车人证件号
			dto.setPickCarTel(vo.getPickCarTel());//提车人联系方式
			dto.setSellAmt(vo.getSellAmt());//销售金额
			dto.setSellChannelCd(vo.getSellChannelCd());//销售渠道(ASS0011)
			dto.setSellDesc(vo.getSellDesc());//销售说明
			dto.setPayeeAccNm(vo.getPayeeAccNm());//收款方账户名称  
			dto.setPayeeAccNo(vo.getPayeeAccNo());//收款方银行账号
			dto.setPayeeBankNm(vo.getPayeeBankNm());//收款方开户银行
			dto.setPayeeBankNo(vo.getPayeeBankNo());//收款方开户行号 
			dto.setReceivedAmt(vo.getReceivedAmt());//到账金额
			dto.setReceivedTm(vo.getReceivedTm());//到账时间
			dto.setHandlerId(vo.getHandlerId());//经手人ID
			dto.setHandlerNm(vo.getHandlerNm());//经手人姓名
			dto.setHandlerCd(vo.getHandlerCd());//经手人证件号
			dto.setHandlerTel(vo.getHandlerTel());//经手人联系方式
			dto.setFlowStatusCd(vo.getFlowStatusCd());//流程状态(ASS0002)
			dto.setIsBorrow(vo.getIsBorrow());//是否预借权证
			dto.setIsPay(vo.getIsPay());//是否确认客户付款
			dto.setIsReceived(vo.getIsReceived());//是否已经到账
			dto.setIsDel(vo.getIsDel());//是否删除 1-删除 0-正常
			dto.setBuyerCompanyCode(vo.getBuyerCompanyCode());//购买企业组织机构代码
			dto.setApplyNm(vo.getApplyNm());//申请人名称

			dto.setCrtTm(vo.getCrtTm());//创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());//创建人
			dto.setMdfTm(vo.getMdfTm());//修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());//修改人
			
			dto.setBackedFlagCd(vo.getBackedFlagCd());//拖回标记
			dto.setBaseAmt(vo.getBaseAmt());//保底价
			dto.setSellEstiAmt(vo.getSellEstiAmt());;//处置评估价
			dto.setSellEstiDt(vo.getSellEstiDt());//处置评估时间
			dto.setAssessAmt(vo.getAssessAmt());*/
		}
		return dto;
	}
	
	/**
	 * DTO集合 转 VO集合
	 * @param List<AssDealSellDTO>
	 * @return List<AssDealSellVO>
	 */
	public static List<AssDealSellVO> toVOList(List<AssDealSellDTO> list) {
		List<AssDealSellVO>  voList = new ArrayList<AssDealSellVO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealSellDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}
	
	/**
	 * VO集合 转 DTO集合
	 * @param list List<AssDealSellVO>
	 * @return List<AssDealSellDTO>
	 */
	public static List<AssDealSellDTO> toDTOList(List<AssDealSellVO> list) {
		List<AssDealSellDTO>  dtoList = new ArrayList<AssDealSellDTO>();
		if(CollectionUtils.isNotEmpty(list)){
			for (AssDealSellVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}
